// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.


// Generated from TemplatingLexer.g4 by ANTLR 4.7.2

// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419

namespace Templating.Grammar.Antlr
{
    using System;
    using System.IO;
    using Antlr4.Runtime;
    using Antlr4.Runtime.Atn;
    using Antlr4.Runtime.Misc;
    using DFA = Antlr4.Runtime.Dfa.DFA;

    [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.7.2")]
    [System.CLSCompliant(false)]
#pragma warning disable CS3021 // Type or member does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute
    public partial class TemplatingLexer : Lexer
    {
#pragma warning restore CS3021 // Type or member does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute
        protected static DFA[] decisionToDFA;
        protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
        public const int
            TOKEN_OP_RBRACE = 1, TOKEN_OP_LBRACKET = 2, TOKEN_MARK = 3, TOKEN_MARK_FOREACH = 4,
            TOKEN_EXPR = 5, TOKEN_PARTIAL = 6, TOKEN_EXPR_NEST = 7, TOKEN_OTHER = 8, TOKEN_OP_LBRACE = 9,
            TOKEN_OP_LPARENT = 10, TOKEN_OP_RPARENT = 11, TOKEN_OP_EQUAL = 12, TOKEN_OP_COMMA = 13,
            TOKEN_BLANK = 14, TOKEN_CONST_STRING = 15, TOKEN_CONST_INTEGER = 16, TOKEN_GROUPBY = 17,
            TOKEN_ORDERBY = 18, TOKEN_INTO = 19, TOKEN_IDENTIFIER = 20;
        public const int
            ISLAND = 1;
        public static string[] channelNames = {
        "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
    };

        public static string[] modeNames = {
        "DEFAULT_MODE", "ISLAND"
    };

        public static readonly string[] ruleNames = {
        "TOKEN_OP_RBRACE", "TOKEN_OP_LBRACKET", "TOKEN_MARK", "TOKEN_MARK_FOREACH",
        "TOKEN_EXPR", "TOKEN_PARTIAL", "TOKEN_EXPR_NEST", "TOKEN_OTHER", "TOKEN_OP_LBRACE",
        "TOKEN_OP_LPARENT", "TOKEN_OP_RPARENT", "TOKEN_OP_EQUAL", "TOKEN_OP_COMMA",
        "TOKEN_BLANK", "TOKEN_CONST_STRING", "TOKEN_CONST_INTEGER", "TOKEN_GROUPBY",
        "TOKEN_ORDERBY", "TOKEN_INTO", "TOKEN_IDENTIFIER", "MARK", "FOREACH",
        "PARTIAL", "WS", "NEWLINE", "DIGIT", "LETTER", "ANSI_L", "ESC", "UNICODE_L",
        "UNDERSCORE", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
        "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
    };


        public TemplatingLexer(ICharStream input)
        : this(input, Console.Out, Console.Error) { }

        public TemplatingLexer(ICharStream input, TextWriter output, TextWriter errorOutput)
        : base(input, output, errorOutput)
        {
            Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
        }

        private static readonly string[] _LiteralNames = {
        null, "'}'", null, null, null, null, null, null, null, null, "'('", "')'",
        "'='", "','"
    };
        private static readonly string[] _SymbolicNames = {
        null, "TOKEN_OP_RBRACE", "TOKEN_OP_LBRACKET", "TOKEN_MARK", "TOKEN_MARK_FOREACH",
        "TOKEN_EXPR", "TOKEN_PARTIAL", "TOKEN_EXPR_NEST", "TOKEN_OTHER", "TOKEN_OP_LBRACE",
        "TOKEN_OP_LPARENT", "TOKEN_OP_RPARENT", "TOKEN_OP_EQUAL", "TOKEN_OP_COMMA",
        "TOKEN_BLANK", "TOKEN_CONST_STRING", "TOKEN_CONST_INTEGER", "TOKEN_GROUPBY",
        "TOKEN_ORDERBY", "TOKEN_INTO", "TOKEN_IDENTIFIER"
    };
        public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);

        [NotNull]
        public override IVocabulary Vocabulary
        {
            get
            {
                return DefaultVocabulary;
            }
        }

        public override string GrammarFileName { get { return "TemplatingLexer.g4"; } }

        public override string[] RuleNames { get { return ruleNames; } }

        public override string[] ChannelNames { get { return channelNames; } }

        public override string[] ModeNames { get { return modeNames; } }

        public override string SerializedAtn { get { return new string(_serializedATN); } }

        static TemplatingLexer()
        {
            decisionToDFA = new DFA[_ATN.NumberOfDecisions];
            for (int i = 0; i < _ATN.NumberOfDecisions; i++)
            {
                decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
            }
        }
        private static char[] _serializedATN = {
        '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
        '\x5964', '\x2', '\x16', '\x142', '\b', '\x1', '\b', '\x1', '\x4', '\x2',
        '\t', '\x2', '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4',
        '\x5', '\t', '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a',
        '\x4', '\b', '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n',
        '\x4', '\v', '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r',
        '\x4', '\xE', '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t',
        '\x10', '\x4', '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4',
        '\x13', '\t', '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t',
        '\x15', '\x4', '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4',
        '\x18', '\t', '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t',
        '\x1A', '\x4', '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x4',
        '\x1D', '\t', '\x1D', '\x4', '\x1E', '\t', '\x1E', '\x4', '\x1F', '\t',
        '\x1F', '\x4', ' ', '\t', ' ', '\x4', '!', '\t', '!', '\x4', '\"', '\t',
        '\"', '\x4', '#', '\t', '#', '\x4', '$', '\t', '$', '\x4', '%', '\t',
        '%', '\x4', '&', '\t', '&', '\x4', '\'', '\t', '\'', '\x4', '(', '\t',
        '(', '\x4', ')', '\t', ')', '\x4', '*', '\t', '*', '\x4', '+', '\t', '+',
        '\x4', ',', '\t', ',', '\x4', '-', '\t', '-', '\x4', '.', '\t', '.', '\x4',
        '/', '\t', '/', '\x4', '\x30', '\t', '\x30', '\x4', '\x31', '\t', '\x31',
        '\x4', '\x32', '\t', '\x32', '\x4', '\x33', '\t', '\x33', '\x4', '\x34',
        '\t', '\x34', '\x4', '\x35', '\t', '\x35', '\x4', '\x36', '\t', '\x36',
        '\x4', '\x37', '\t', '\x37', '\x4', '\x38', '\t', '\x38', '\x4', '\x39',
        '\t', '\x39', '\x4', ':', '\t', ':', '\x3', '\x2', '\x3', '\x2', '\x3',
        '\x3', '\x3', '\x3', '\x3', '\x4', '\x3', '\x4', '\x3', '\x5', '\x3',
        '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3',
        '\x6', '\x3', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a',
        '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\a', '\b', '\x8D',
        '\n', '\b', '\f', '\b', '\xE', '\b', '\x90', '\v', '\b', '\x3', '\b',
        '\x3', '\b', '\x3', '\t', '\x6', '\t', '\x95', '\n', '\t', '\r', '\t',
        '\xE', '\t', '\x96', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n',
        '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3',
        '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x6', '\xF',
        '\xA7', '\n', '\xF', '\r', '\xF', '\xE', '\xF', '\xA8', '\x3', '\xF',
        '\x3', '\xF', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\a', '\x10',
        '\xB0', '\n', '\x10', '\f', '\x10', '\xE', '\x10', '\xB3', '\v', '\x10',
        '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\a', '\x10',
        '\xB9', '\n', '\x10', '\f', '\x10', '\xE', '\x10', '\xBC', '\v', '\x10',
        '\x3', '\x10', '\x5', '\x10', '\xBF', '\n', '\x10', '\x3', '\x11', '\x6',
        '\x11', '\xC2', '\n', '\x11', '\r', '\x11', '\xE', '\x11', '\xC3', '\x3',
        '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3',
        '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', '\x3',
        '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3',
        '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3',
        '\x14', '\x3', '\x15', '\x3', '\x15', '\x5', '\x15', '\xDD', '\n', '\x15',
        '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\a', '\x15', '\xE2', '\n',
        '\x15', '\f', '\x15', '\xE', '\x15', '\xE5', '\v', '\x15', '\x3', '\x16',
        '\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17',
        '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', '\x18',
        '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18',
        '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A',
        '\x5', '\x1A', '\xFC', '\n', '\x1A', '\x3', '\x1A', '\x3', '\x1A', '\x3',
        '\x1B', '\x3', '\x1B', '\x3', '\x1C', '\x3', '\x1C', '\x5', '\x1C', '\x104',
        '\n', '\x1C', '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1E', '\x3', '\x1E',
        '\x3', '\x1E', '\x3', '\x1F', '\x3', '\x1F', '\x3', ' ', '\x3', ' ', '\x3',
        '!', '\x3', '!', '\x3', '\"', '\x3', '\"', '\x3', '#', '\x3', '#', '\x3',
        '$', '\x3', '$', '\x3', '%', '\x3', '%', '\x3', '&', '\x3', '&', '\x3',
        '\'', '\x3', '\'', '\x3', '(', '\x3', '(', '\x3', ')', '\x3', ')', '\x3',
        '*', '\x3', '*', '\x3', '+', '\x3', '+', '\x3', ',', '\x3', ',', '\x3',
        '-', '\x3', '-', '\x3', '.', '\x3', '.', '\x3', '/', '\x3', '/', '\x3',
        '\x30', '\x3', '\x30', '\x3', '\x31', '\x3', '\x31', '\x3', '\x32', '\x3',
        '\x32', '\x3', '\x33', '\x3', '\x33', '\x3', '\x34', '\x3', '\x34', '\x3',
        '\x35', '\x3', '\x35', '\x3', '\x36', '\x3', '\x36', '\x3', '\x37', '\x3',
        '\x37', '\x3', '\x38', '\x3', '\x38', '\x3', '\x39', '\x3', '\x39', '\x3',
        ':', '\x3', ':', '\x3', '\x8E', '\x2', ';', '\x4', '\x3', '\x6', '\x4',
        '\b', '\x5', '\n', '\x6', '\f', '\a', '\xE', '\b', '\x10', '\t', '\x12',
        '\n', '\x14', '\v', '\x16', '\f', '\x18', '\r', '\x1A', '\xE', '\x1C',
        '\xF', '\x1E', '\x10', ' ', '\x11', '\"', '\x12', '$', '\x13', '&', '\x14',
        '(', '\x15', '*', '\x16', ',', '\x2', '.', '\x2', '\x30', '\x2', '\x32',
        '\x2', '\x34', '\x2', '\x36', '\x2', '\x38', '\x2', ':', '\x2', '<', '\x2',
        '>', '\x2', '@', '\x2', '\x42', '\x2', '\x44', '\x2', '\x46', '\x2', 'H',
        '\x2', 'J', '\x2', 'L', '\x2', 'N', '\x2', 'P', '\x2', 'R', '\x2', 'T',
        '\x2', 'V', '\x2', 'X', '\x2', 'Z', '\x2', '\\', '\x2', '^', '\x2', '`',
        '\x2', '\x62', '\x2', '\x64', '\x2', '\x66', '\x2', 'h', '\x2', 'j', '\x2',
        'l', '\x2', 'n', '\x2', 'p', '\x2', 'r', '\x2', 't', '\x2', '\x4', '\x2',
        '\x3', '%', '\x3', '\x2', '*', '+', '\x5', '\x2', '\x42', '\x42', '}',
        '}', '\x7F', '\x7F', '\x6', '\x2', '\f', '\f', '\xF', '\xF', '$', '$',
        '\x80', '\x80', '\x6', '\x2', '\f', '\f', '\xF', '\xF', ')', ')', '\x80',
        '\x80', '\x5', '\x2', '\v', '\v', '\xE', '\xE', '\"', '\"', '\x4', '\x2',
        '\x43', '\\', '\x63', '|', '\x4', '\x2', '^', '^', '\x80', '\x80', '\x4',
        '\x2', '\f', '\f', '\xF', '\xF', '\x10', '\x2', '\x43', '\\', '\x63',
        '|', '\xC2', '\xD8', '\xDA', '\xF8', '\xFA', '\x3191', '\x3302', '\x3381',
        '\x3402', '\x3D2F', '\x4E02', '\xA001', '\xAC02', '\xD7B1', '\xF902',
        '\xFB01', '\xFF12', '\xFF1B', '\xFF23', '\xFF3C', '\xFF43', '\xFF5C',
        '\xFF68', '\xFF9F', '\x4', '\x2', '\x43', '\x43', '\x63', '\x63', '\x4',
        '\x2', '\x44', '\x44', '\x64', '\x64', '\x4', '\x2', '\x45', '\x45', '\x65',
        '\x65', '\x4', '\x2', '\x46', '\x46', '\x66', '\x66', '\x4', '\x2', 'G',
        'G', 'g', 'g', '\x4', '\x2', 'H', 'H', 'h', 'h', '\x4', '\x2', 'I', 'I',
        'i', 'i', '\x4', '\x2', 'J', 'J', 'j', 'j', '\x4', '\x2', 'K', 'K', 'k',
        'k', '\x4', '\x2', 'L', 'L', 'l', 'l', '\x4', '\x2', 'M', 'M', 'm', 'm',
        '\x4', '\x2', 'N', 'N', 'n', 'n', '\x4', '\x2', 'O', 'O', 'o', 'o', '\x4',
        '\x2', 'P', 'P', 'p', 'p', '\x4', '\x2', 'Q', 'Q', 'q', 'q', '\x4', '\x2',
        'R', 'R', 'r', 'r', '\x4', '\x2', 'S', 'S', 's', 's', '\x4', '\x2', 'T',
        'T', 't', 't', '\x4', '\x2', 'U', 'U', 'u', 'u', '\x4', '\x2', 'V', 'V',
        'v', 'v', '\x4', '\x2', 'W', 'W', 'w', 'w', '\x4', '\x2', 'X', 'X', 'x',
        'x', '\x4', '\x2', 'Y', 'Y', 'y', 'y', '\x4', '\x2', 'Z', 'Z', 'z', 'z',
        '\x4', '\x2', '[', '[', '{', '{', '\x4', '\x2', '\\', '\\', '|', '|',
        '\x2', '\x12D', '\x2', '\x4', '\x3', '\x2', '\x2', '\x2', '\x2', '\x6',
        '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', '\x2', '\x2', '\x2', '\x2',
        '\n', '\x3', '\x2', '\x2', '\x2', '\x2', '\f', '\x3', '\x2', '\x2', '\x2',
        '\x2', '\xE', '\x3', '\x2', '\x2', '\x2', '\x2', '\x10', '\x3', '\x2',
        '\x2', '\x2', '\x2', '\x12', '\x3', '\x2', '\x2', '\x2', '\x3', '\x14',
        '\x3', '\x2', '\x2', '\x2', '\x3', '\x16', '\x3', '\x2', '\x2', '\x2',
        '\x3', '\x18', '\x3', '\x2', '\x2', '\x2', '\x3', '\x1A', '\x3', '\x2',
        '\x2', '\x2', '\x3', '\x1C', '\x3', '\x2', '\x2', '\x2', '\x3', '\x1E',
        '\x3', '\x2', '\x2', '\x2', '\x3', ' ', '\x3', '\x2', '\x2', '\x2', '\x3',
        '\"', '\x3', '\x2', '\x2', '\x2', '\x3', '$', '\x3', '\x2', '\x2', '\x2',
        '\x3', '&', '\x3', '\x2', '\x2', '\x2', '\x3', '(', '\x3', '\x2', '\x2',
        '\x2', '\x3', '*', '\x3', '\x2', '\x2', '\x2', '\x4', 'v', '\x3', '\x2',
        '\x2', '\x2', '\x6', 'x', '\x3', '\x2', '\x2', '\x2', '\b', 'z', '\x3',
        '\x2', '\x2', '\x2', '\n', '|', '\x3', '\x2', '\x2', '\x2', '\f', '\x81',
        '\x3', '\x2', '\x2', '\x2', '\xE', '\x84', '\x3', '\x2', '\x2', '\x2',
        '\x10', '\x88', '\x3', '\x2', '\x2', '\x2', '\x12', '\x94', '\x3', '\x2',
        '\x2', '\x2', '\x14', '\x98', '\x3', '\x2', '\x2', '\x2', '\x16', '\x9C',
        '\x3', '\x2', '\x2', '\x2', '\x18', '\x9E', '\x3', '\x2', '\x2', '\x2',
        '\x1A', '\xA0', '\x3', '\x2', '\x2', '\x2', '\x1C', '\xA2', '\x3', '\x2',
        '\x2', '\x2', '\x1E', '\xA6', '\x3', '\x2', '\x2', '\x2', ' ', '\xBE',
        '\x3', '\x2', '\x2', '\x2', '\"', '\xC1', '\x3', '\x2', '\x2', '\x2',
        '$', '\xC5', '\x3', '\x2', '\x2', '\x2', '&', '\xCD', '\x3', '\x2', '\x2',
        '\x2', '(', '\xD5', '\x3', '\x2', '\x2', '\x2', '*', '\xDC', '\x3', '\x2',
        '\x2', '\x2', ',', '\xE6', '\x3', '\x2', '\x2', '\x2', '.', '\xE8', '\x3',
        '\x2', '\x2', '\x2', '\x30', '\xF0', '\x3', '\x2', '\x2', '\x2', '\x32',
        '\xF8', '\x3', '\x2', '\x2', '\x2', '\x34', '\xFB', '\x3', '\x2', '\x2',
        '\x2', '\x36', '\xFF', '\x3', '\x2', '\x2', '\x2', '\x38', '\x103', '\x3',
        '\x2', '\x2', '\x2', ':', '\x105', '\x3', '\x2', '\x2', '\x2', '<', '\x107',
        '\x3', '\x2', '\x2', '\x2', '>', '\x10A', '\x3', '\x2', '\x2', '\x2',
        '@', '\x10C', '\x3', '\x2', '\x2', '\x2', '\x42', '\x10E', '\x3', '\x2',
        '\x2', '\x2', '\x44', '\x110', '\x3', '\x2', '\x2', '\x2', '\x46', '\x112',
        '\x3', '\x2', '\x2', '\x2', 'H', '\x114', '\x3', '\x2', '\x2', '\x2',
        'J', '\x116', '\x3', '\x2', '\x2', '\x2', 'L', '\x118', '\x3', '\x2',
        '\x2', '\x2', 'N', '\x11A', '\x3', '\x2', '\x2', '\x2', 'P', '\x11C',
        '\x3', '\x2', '\x2', '\x2', 'R', '\x11E', '\x3', '\x2', '\x2', '\x2',
        'T', '\x120', '\x3', '\x2', '\x2', '\x2', 'V', '\x122', '\x3', '\x2',
        '\x2', '\x2', 'X', '\x124', '\x3', '\x2', '\x2', '\x2', 'Z', '\x126',
        '\x3', '\x2', '\x2', '\x2', '\\', '\x128', '\x3', '\x2', '\x2', '\x2',
        '^', '\x12A', '\x3', '\x2', '\x2', '\x2', '`', '\x12C', '\x3', '\x2',
        '\x2', '\x2', '\x62', '\x12E', '\x3', '\x2', '\x2', '\x2', '\x64', '\x130',
        '\x3', '\x2', '\x2', '\x2', '\x66', '\x132', '\x3', '\x2', '\x2', '\x2',
        'h', '\x134', '\x3', '\x2', '\x2', '\x2', 'j', '\x136', '\x3', '\x2',
        '\x2', '\x2', 'l', '\x138', '\x3', '\x2', '\x2', '\x2', 'n', '\x13A',
        '\x3', '\x2', '\x2', '\x2', 'p', '\x13C', '\x3', '\x2', '\x2', '\x2',
        'r', '\x13E', '\x3', '\x2', '\x2', '\x2', 't', '\x140', '\x3', '\x2',
        '\x2', '\x2', 'v', 'w', '\a', '\x7F', '\x2', '\x2', 'w', '\x5', '\x3',
        '\x2', '\x2', '\x2', 'x', 'y', '\a', '}', '\x2', '\x2', 'y', '\a', '\x3',
        '\x2', '\x2', '\x2', 'z', '{', '\x5', ',', '\x16', '\x2', '{', '\t', '\x3',
        '\x2', '\x2', '\x2', '|', '}', '\x5', ',', '\x16', '\x2', '}', '~', '\x5',
        '.', '\x17', '\x2', '~', '\x7F', '\x3', '\x2', '\x2', '\x2', '\x7F', '\x80',
        '\b', '\x5', '\x2', '\x2', '\x80', '\v', '\x3', '\x2', '\x2', '\x2', '\x81',
        '\x82', '\x5', '\b', '\x4', '\x2', '\x82', '\x83', '\x5', '\x10', '\b',
        '\x2', '\x83', '\r', '\x3', '\x2', '\x2', '\x2', '\x84', '\x85', '\x5',
        ',', '\x16', '\x2', '\x85', '\x86', '\x5', '\x30', '\x18', '\x2', '\x86',
        '\x87', '\x5', '\x10', '\b', '\x2', '\x87', '\xF', '\x3', '\x2', '\x2',
        '\x2', '\x88', '\x8E', '\x5', '\x16', '\v', '\x2', '\x89', '\x8D', '\x5',
        '\x10', '\b', '\x2', '\x8A', '\x8D', '\x5', ' ', '\x10', '\x2', '\x8B',
        '\x8D', '\n', '\x2', '\x2', '\x2', '\x8C', '\x89', '\x3', '\x2', '\x2',
        '\x2', '\x8C', '\x8A', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8B', '\x3',
        '\x2', '\x2', '\x2', '\x8D', '\x90', '\x3', '\x2', '\x2', '\x2', '\x8E',
        '\x8F', '\x3', '\x2', '\x2', '\x2', '\x8E', '\x8C', '\x3', '\x2', '\x2',
        '\x2', '\x8F', '\x91', '\x3', '\x2', '\x2', '\x2', '\x90', '\x8E', '\x3',
        '\x2', '\x2', '\x2', '\x91', '\x92', '\x5', '\x18', '\f', '\x2', '\x92',
        '\x11', '\x3', '\x2', '\x2', '\x2', '\x93', '\x95', '\n', '\x3', '\x2',
        '\x2', '\x94', '\x93', '\x3', '\x2', '\x2', '\x2', '\x95', '\x96', '\x3',
        '\x2', '\x2', '\x2', '\x96', '\x94', '\x3', '\x2', '\x2', '\x2', '\x96',
        '\x97', '\x3', '\x2', '\x2', '\x2', '\x97', '\x13', '\x3', '\x2', '\x2',
        '\x2', '\x98', '\x99', '\a', '}', '\x2', '\x2', '\x99', '\x9A', '\x3',
        '\x2', '\x2', '\x2', '\x9A', '\x9B', '\b', '\n', '\x3', '\x2', '\x9B',
        '\x15', '\x3', '\x2', '\x2', '\x2', '\x9C', '\x9D', '\a', '*', '\x2',
        '\x2', '\x9D', '\x17', '\x3', '\x2', '\x2', '\x2', '\x9E', '\x9F', '\a',
        '+', '\x2', '\x2', '\x9F', '\x19', '\x3', '\x2', '\x2', '\x2', '\xA0',
        '\xA1', '\a', '?', '\x2', '\x2', '\xA1', '\x1B', '\x3', '\x2', '\x2',
        '\x2', '\xA2', '\xA3', '\a', '.', '\x2', '\x2', '\xA3', '\x1D', '\x3',
        '\x2', '\x2', '\x2', '\xA4', '\xA7', '\x5', '\x34', '\x1A', '\x2', '\xA5',
        '\xA7', '\x5', '\x32', '\x19', '\x2', '\xA6', '\xA4', '\x3', '\x2', '\x2',
        '\x2', '\xA6', '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA8', '\x3',
        '\x2', '\x2', '\x2', '\xA8', '\xA6', '\x3', '\x2', '\x2', '\x2', '\xA8',
        '\xA9', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\x3', '\x2', '\x2',
        '\x2', '\xAA', '\xAB', '\b', '\xF', '\x4', '\x2', '\xAB', '\x1F', '\x3',
        '\x2', '\x2', '\x2', '\xAC', '\xB1', '\a', '$', '\x2', '\x2', '\xAD',
        '\xB0', '\x5', '<', '\x1E', '\x2', '\xAE', '\xB0', '\n', '\x4', '\x2',
        '\x2', '\xAF', '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAF', '\xAE', '\x3',
        '\x2', '\x2', '\x2', '\xB0', '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB1',
        '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\x3', '\x2', '\x2',
        '\x2', '\xB2', '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB1', '\x3',
        '\x2', '\x2', '\x2', '\xB4', '\xBF', '\a', '$', '\x2', '\x2', '\xB5',
        '\xBA', '\a', ')', '\x2', '\x2', '\xB6', '\xB9', '\x5', '<', '\x1E', '\x2',
        '\xB7', '\xB9', '\n', '\x5', '\x2', '\x2', '\xB8', '\xB6', '\x3', '\x2',
        '\x2', '\x2', '\xB8', '\xB7', '\x3', '\x2', '\x2', '\x2', '\xB9', '\xBC',
        '\x3', '\x2', '\x2', '\x2', '\xBA', '\xB8', '\x3', '\x2', '\x2', '\x2',
        '\xBA', '\xBB', '\x3', '\x2', '\x2', '\x2', '\xBB', '\xBD', '\x3', '\x2',
        '\x2', '\x2', '\xBC', '\xBA', '\x3', '\x2', '\x2', '\x2', '\xBD', '\xBF',
        '\a', ')', '\x2', '\x2', '\xBE', '\xAC', '\x3', '\x2', '\x2', '\x2', '\xBE',
        '\xB5', '\x3', '\x2', '\x2', '\x2', '\xBF', '!', '\x3', '\x2', '\x2',
        '\x2', '\xC0', '\xC2', '\x5', '\x36', '\x1B', '\x2', '\xC1', '\xC0', '\x3',
        '\x2', '\x2', '\x2', '\xC2', '\xC3', '\x3', '\x2', '\x2', '\x2', '\xC3',
        '\xC1', '\x3', '\x2', '\x2', '\x2', '\xC3', '\xC4', '\x3', '\x2', '\x2',
        '\x2', '\xC4', '#', '\x3', '\x2', '\x2', '\x2', '\xC5', '\xC6', '\x5',
        'N', '\'', '\x2', '\xC6', '\xC7', '\x5', '\x64', '\x32', '\x2', '\xC7',
        '\xC8', '\x5', '^', '/', '\x2', '\xC8', '\xC9', '\x5', 'j', '\x35', '\x2',
        '\xC9', '\xCA', '\x5', '`', '\x30', '\x2', '\xCA', '\xCB', '\x5', '\x44',
        '\"', '\x2', '\xCB', '\xCC', '\x5', 'r', '\x39', '\x2', '\xCC', '%', '\x3',
        '\x2', '\x2', '\x2', '\xCD', '\xCE', '\x5', '^', '/', '\x2', '\xCE', '\xCF',
        '\x5', '\x64', '\x32', '\x2', '\xCF', '\xD0', '\x5', 'H', '$', '\x2',
        '\xD0', '\xD1', '\x5', 'J', '%', '\x2', '\xD1', '\xD2', '\x5', '\x64',
        '\x32', '\x2', '\xD2', '\xD3', '\x5', '\x44', '\"', '\x2', '\xD3', '\xD4',
        '\x5', 'r', '\x39', '\x2', '\xD4', '\'', '\x3', '\x2', '\x2', '\x2', '\xD5',
        '\xD6', '\x5', 'R', ')', '\x2', '\xD6', '\xD7', '\x5', '\\', '.', '\x2',
        '\xD7', '\xD8', '\x5', 'h', '\x34', '\x2', '\xD8', '\xD9', '\x5', '^',
        '/', '\x2', '\xD9', ')', '\x3', '\x2', '\x2', '\x2', '\xDA', '\xDD', '\x5',
        '\x38', '\x1C', '\x2', '\xDB', '\xDD', '\x5', '@', ' ', '\x2', '\xDC',
        '\xDA', '\x3', '\x2', '\x2', '\x2', '\xDC', '\xDB', '\x3', '\x2', '\x2',
        '\x2', '\xDD', '\xE3', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xE2', '\x5',
        '\x38', '\x1C', '\x2', '\xDF', '\xE2', '\x5', '@', ' ', '\x2', '\xE0',
        '\xE2', '\x5', '\x36', '\x1B', '\x2', '\xE1', '\xDE', '\x3', '\x2', '\x2',
        '\x2', '\xE1', '\xDF', '\x3', '\x2', '\x2', '\x2', '\xE1', '\xE0', '\x3',
        '\x2', '\x2', '\x2', '\xE2', '\xE5', '\x3', '\x2', '\x2', '\x2', '\xE3',
        '\xE1', '\x3', '\x2', '\x2', '\x2', '\xE3', '\xE4', '\x3', '\x2', '\x2',
        '\x2', '\xE4', '+', '\x3', '\x2', '\x2', '\x2', '\xE5', '\xE3', '\x3',
        '\x2', '\x2', '\x2', '\xE6', '\xE7', '\a', '\x42', '\x2', '\x2', '\xE7',
        '-', '\x3', '\x2', '\x2', '\x2', '\xE8', '\xE9', '\x5', 'L', '&', '\x2',
        '\xE9', '\xEA', '\x5', '^', '/', '\x2', '\xEA', '\xEB', '\x5', '\x64',
        '\x32', '\x2', '\xEB', '\xEC', '\x5', 'J', '%', '\x2', '\xEC', '\xED',
        '\x5', '\x42', '!', '\x2', '\xED', '\xEE', '\x5', '\x46', '#', '\x2',
        '\xEE', '\xEF', '\x5', 'P', '(', '\x2', '\xEF', '/', '\x3', '\x2', '\x2',
        '\x2', '\xF0', '\xF1', '\x5', '`', '\x30', '\x2', '\xF1', '\xF2', '\x5',
        '\x42', '!', '\x2', '\xF2', '\xF3', '\x5', '\x64', '\x32', '\x2', '\xF3',
        '\xF4', '\x5', 'h', '\x34', '\x2', '\xF4', '\xF5', '\x5', 'R', ')', '\x2',
        '\xF5', '\xF6', '\x5', '\x42', '!', '\x2', '\xF6', '\xF7', '\x5', 'X',
        ',', '\x2', '\xF7', '\x31', '\x3', '\x2', '\x2', '\x2', '\xF8', '\xF9',
        '\t', '\x6', '\x2', '\x2', '\xF9', '\x33', '\x3', '\x2', '\x2', '\x2',
        '\xFA', '\xFC', '\a', '\xF', '\x2', '\x2', '\xFB', '\xFA', '\x3', '\x2',
        '\x2', '\x2', '\xFB', '\xFC', '\x3', '\x2', '\x2', '\x2', '\xFC', '\xFD',
        '\x3', '\x2', '\x2', '\x2', '\xFD', '\xFE', '\a', '\f', '\x2', '\x2',
        '\xFE', '\x35', '\x3', '\x2', '\x2', '\x2', '\xFF', '\x100', '\x4', '\x32',
        ';', '\x2', '\x100', '\x37', '\x3', '\x2', '\x2', '\x2', '\x101', '\x104',
        '\x5', ':', '\x1D', '\x2', '\x102', '\x104', '\x5', '>', '\x1F', '\x2',
        '\x103', '\x101', '\x3', '\x2', '\x2', '\x2', '\x103', '\x102', '\x3',
        '\x2', '\x2', '\x2', '\x104', '\x39', '\x3', '\x2', '\x2', '\x2', '\x105',
        '\x106', '\t', '\a', '\x2', '\x2', '\x106', ';', '\x3', '\x2', '\x2',
        '\x2', '\x107', '\x108', '\t', '\b', '\x2', '\x2', '\x108', '\x109', '\n',
        '\t', '\x2', '\x2', '\x109', '=', '\x3', '\x2', '\x2', '\x2', '\x10A',
        '\x10B', '\t', '\n', '\x2', '\x2', '\x10B', '?', '\x3', '\x2', '\x2',
        '\x2', '\x10C', '\x10D', '\a', '\x61', '\x2', '\x2', '\x10D', '\x41',
        '\x3', '\x2', '\x2', '\x2', '\x10E', '\x10F', '\t', '\v', '\x2', '\x2',
        '\x10F', '\x43', '\x3', '\x2', '\x2', '\x2', '\x110', '\x111', '\t', '\f',
        '\x2', '\x2', '\x111', '\x45', '\x3', '\x2', '\x2', '\x2', '\x112', '\x113',
        '\t', '\r', '\x2', '\x2', '\x113', 'G', '\x3', '\x2', '\x2', '\x2', '\x114',
        '\x115', '\t', '\xE', '\x2', '\x2', '\x115', 'I', '\x3', '\x2', '\x2',
        '\x2', '\x116', '\x117', '\t', '\xF', '\x2', '\x2', '\x117', 'K', '\x3',
        '\x2', '\x2', '\x2', '\x118', '\x119', '\t', '\x10', '\x2', '\x2', '\x119',
        'M', '\x3', '\x2', '\x2', '\x2', '\x11A', '\x11B', '\t', '\x11', '\x2',
        '\x2', '\x11B', 'O', '\x3', '\x2', '\x2', '\x2', '\x11C', '\x11D', '\t',
        '\x12', '\x2', '\x2', '\x11D', 'Q', '\x3', '\x2', '\x2', '\x2', '\x11E',
        '\x11F', '\t', '\x13', '\x2', '\x2', '\x11F', 'S', '\x3', '\x2', '\x2',
        '\x2', '\x120', '\x121', '\t', '\x14', '\x2', '\x2', '\x121', 'U', '\x3',
        '\x2', '\x2', '\x2', '\x122', '\x123', '\t', '\x15', '\x2', '\x2', '\x123',
        'W', '\x3', '\x2', '\x2', '\x2', '\x124', '\x125', '\t', '\x16', '\x2',
        '\x2', '\x125', 'Y', '\x3', '\x2', '\x2', '\x2', '\x126', '\x127', '\t',
        '\x17', '\x2', '\x2', '\x127', '[', '\x3', '\x2', '\x2', '\x2', '\x128',
        '\x129', '\t', '\x18', '\x2', '\x2', '\x129', ']', '\x3', '\x2', '\x2',
        '\x2', '\x12A', '\x12B', '\t', '\x19', '\x2', '\x2', '\x12B', '_', '\x3',
        '\x2', '\x2', '\x2', '\x12C', '\x12D', '\t', '\x1A', '\x2', '\x2', '\x12D',
        '\x61', '\x3', '\x2', '\x2', '\x2', '\x12E', '\x12F', '\t', '\x1B', '\x2',
        '\x2', '\x12F', '\x63', '\x3', '\x2', '\x2', '\x2', '\x130', '\x131',
        '\t', '\x1C', '\x2', '\x2', '\x131', '\x65', '\x3', '\x2', '\x2', '\x2',
        '\x132', '\x133', '\t', '\x1D', '\x2', '\x2', '\x133', 'g', '\x3', '\x2',
        '\x2', '\x2', '\x134', '\x135', '\t', '\x1E', '\x2', '\x2', '\x135', 'i',
        '\x3', '\x2', '\x2', '\x2', '\x136', '\x137', '\t', '\x1F', '\x2', '\x2',
        '\x137', 'k', '\x3', '\x2', '\x2', '\x2', '\x138', '\x139', '\t', ' ',
        '\x2', '\x2', '\x139', 'm', '\x3', '\x2', '\x2', '\x2', '\x13A', '\x13B',
        '\t', '!', '\x2', '\x2', '\x13B', 'o', '\x3', '\x2', '\x2', '\x2', '\x13C',
        '\x13D', '\t', '\"', '\x2', '\x2', '\x13D', 'q', '\x3', '\x2', '\x2',
        '\x2', '\x13E', '\x13F', '\t', '#', '\x2', '\x2', '\x13F', 's', '\x3',
        '\x2', '\x2', '\x2', '\x140', '\x141', '\t', '$', '\x2', '\x2', '\x141',
        'u', '\x3', '\x2', '\x2', '\x2', '\x14', '\x2', '\x3', '\x8C', '\x8E',
        '\x96', '\xA6', '\xA8', '\xAF', '\xB1', '\xB8', '\xBA', '\xBE', '\xC3',
        '\xDC', '\xE1', '\xE3', '\xFB', '\x103', '\x5', '\x4', '\x3', '\x2', '\x4',
        '\x2', '\x2', '\b', '\x2', '\x2',
    };

        public static readonly ATN _ATN =
            new ATNDeserializer().Deserialize(_serializedATN);


    }
} // namespace Templating.Grammar.Antlr
